package com.group.project.hrms.entity;

import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;

@Table(name = "salary_monthly_report")
public class SalaryMonthlyReport {

    public SalaryMonthlyReport(){}

    public SalaryMonthlyReport(BigDecimal init) {
        this.basicSalary = init;
        this.postSalary = init;
        this.basicOvertimeAllowance = init;
        this.managementAchievements = init;
        this.produceAchievements = init;
        this.fullAttendanceBonus = init;
        this.lengthServiceBonus = init;
        this.confidentialityFee = init;
        this.workingDayAddFee = init;
        this.weekendAddFee = init;
        this.holidayAddFee = init;
        this.allowanceHot = init;
        this.allowanceNightShift = init;
        this.allowanceOthers = init;
        this.rewardOthers = init;
        this.attendanceHoursChargeBack = init;
        this.totalSalary = init;
        this.adminChargeBack = init;
        this.shouldPaySalary = init;
        this.withHoldInsurance = init;
        this.withHoldFund = init;
        this.withHoldIncomeTax = init;
        this.withHoldLife = init;
        this.withHoldHomestay = init;
        this.withHoldOthers = init;
        this.actualPaySalary = init;
    }


    /**
     * 表单ID
     */
    @Id
    @GeneratedValue(generator = "JDBC")
    private Long id;

    /**
     * 表单创建时间
     */
    @Column(name = "c_time")
    private Date cTime;

    /**
     * 表单修改时间
     */
    @Column(name = "m_time")
    private Date mTime;

    /**
     * 月度薪资报表ID
     */
    @Column(name = "table_id")
    private String tableId;

    /**
     * 员工在本系统的唯一标识符
     */
    @Column(name = "contact_id")
    private String contactId;

    /**
     * 基本工资
     */
    @Column(name = "basic_salary")
    private BigDecimal basicSalary;

    /**
     * 岗位工资
     */
    @Column(name = "post_salary")
    private BigDecimal postSalary;

    /**
     * 基本工资结构中的加班补贴项
     */
    @Column(name = "basic_overtime_allowance")
    private BigDecimal basicOvertimeAllowance;

    /**
     * 管理绩效
     */
    @Column(name = "management_achievements")
    private BigDecimal managementAchievements;

    /**
     * 生产绩效
     */
    @Column(name = "produce_achievements")
    private BigDecimal produceAchievements;

    /**
     * 全勤奖
     */
    @Column(name = "full_attendance_bonus")
    private BigDecimal fullAttendanceBonus;

    /**
     * 工龄奖
     */
    @Column(name = "length_service_bonus")
    private BigDecimal lengthServiceBonus;

    /**
     * 保密费
     */
    @Column(name = "confidentiality_fee")
    private BigDecimal confidentialityFee;

    /**
     * 工作日加班费
     */
    @Column(name = "working_day_add_fee")
    private BigDecimal workingDayAddFee;

    /**
     * 周末加班费
     */
    @Column(name = "weekend_add_fee")
    private BigDecimal weekendAddFee;

    /**
     * 节假日加班费
     */
    @Column(name = "holiday_add_fee")
    private BigDecimal holidayAddFee;

    /**
     * 高温补贴
     */
    @Column(name = "allowance_hot")
    private BigDecimal allowanceHot;

    /**
     * 夜班补贴
     */
    @Column(name = "allowance_night_shift")
    private BigDecimal allowanceNightShift;

    /**
     * 其它补贴
     */
    @Column(name = "allowance_others")
    private BigDecimal allowanceOthers;

    /**
     * 其它补贴备注
     */
    @Column(name = "allowance_others_note")
    private String allowanceOthersNote;

    /**
     * 其它奖励
     */
    @Column(name = "reward_others")
    private BigDecimal rewardOthers;

    /**
     * 其它奖励备注
     */
    @Column(name = "reward_others_note")
    private String rewardOthersNote;

    /**
     * 考勤工时扣款
     */
    @Column(name = "attendance_hours_charge_back")
    private BigDecimal attendanceHoursChargeBack;

    /**
     * 工资总计
     */
    @Column(name = "total_salary")
    private BigDecimal totalSalary;

    /**
     * 行政扣款
     */
    @Column(name = "admin_charge_back")
    private BigDecimal adminChargeBack;

    /**
     * 行政扣款备注
     */
    @Column(name = "admin_charge_back_note")
    private String adminChargeBackNote;

    /**
     * 应发工资
     */
    @Column(name = "should_pay_salary")
    private BigDecimal shouldPaySalary;

    /**
     * 社保代扣
     */
    @Column(name = "with_hold_insurance")
    private BigDecimal withHoldInsurance;

    /**
     * 公积金代扣
     */
    @Column(name = "with_hold_fund")
    private BigDecimal withHoldFund;

    /**
     * 个税代扣
     */
    @Column(name = "with_hold_income_tax")
    private BigDecimal withHoldIncomeTax;

    /**
     * 水电代扣
     */
    @Column(name = "with_hold_life")
    private BigDecimal withHoldLife;

    /**
     * 住宿费代扣
     */
    @Column(name = "with_hold_homestay")
    private BigDecimal withHoldHomestay;

    /**
     * 其它代扣
     */
    @Column(name = "with_hold_others")
    private BigDecimal withHoldOthers;

    /**
     * 其它代扣备注
     */
    @Column(name = "with_hold_others_note")
    private String withHoldOthersNote;

    /**
     * 实发工资
     */
    @Column(name = "actual_pay_salary")
    private BigDecimal actualPaySalary;

    /**
     * 月份标志，例如：2022-05
     */
    @Column(name = "file_month")
    private String fileMonth;

    /**
     * 关联的考勤报表ID
     */
    @Column(name = "attend_report_id")
    private String attendReportId;

    /**
     * 获取表单ID
     *
     * @return id - 表单ID
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置表单ID
     *
     * @param id 表单ID
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取表单创建时间
     *
     * @return c_time - 表单创建时间
     */
    public Date getcTime() {
        return cTime;
    }

    /**
     * 设置表单创建时间
     *
     * @param cTime 表单创建时间
     */
    public void setcTime(Date cTime) {
        this.cTime = cTime;
    }

    /**
     * 获取表单修改时间
     *
     * @return m_time - 表单修改时间
     */
    public Date getmTime() {
        return mTime;
    }

    /**
     * 设置表单修改时间
     *
     * @param mTime 表单修改时间
     */
    public void setmTime(Date mTime) {
        this.mTime = mTime;
    }

    /**
     * 获取月度薪资报表ID
     *
     * @return table_id - 月度薪资报表ID
     */
    public String getTableId() {
        return tableId;
    }

    /**
     * 设置月度薪资报表ID
     *
     * @param tableId 月度薪资报表ID
     */
    public void setTableId(String tableId) {
        this.tableId = tableId;
    }

    /**
     * 获取员工在本系统的唯一标识符
     *
     * @return contact_id - 员工在本系统的唯一标识符
     */
    public String getContactId() {
        return contactId;
    }

    /**
     * 设置员工在本系统的唯一标识符
     *
     * @param contactId 员工在本系统的唯一标识符
     */
    public void setContactId(String contactId) {
        this.contactId = contactId;
    }

    /**
     * 获取基本工资
     *
     * @return basic_salary - 基本工资
     */
    public BigDecimal getBasicSalary() {
        return basicSalary;
    }

    /**
     * 设置基本工资
     *
     * @param basicSalary 基本工资
     */
    public void setBasicSalary(BigDecimal basicSalary) {
        this.basicSalary = basicSalary;
    }

    /**
     * 获取岗位工资
     *
     * @return post_salary - 岗位工资
     */
    public BigDecimal getPostSalary() {
        return postSalary;
    }

    /**
     * 设置岗位工资
     *
     * @param postSalary 岗位工资
     */
    public void setPostSalary(BigDecimal postSalary) {
        this.postSalary = postSalary;
    }

    /**
     * 获取基本工资结构中的加班补贴项
     *
     * @return basic_overtime_allowance - 基本工资结构中的加班补贴项
     */
    public BigDecimal getBasicOvertimeAllowance() {
        return basicOvertimeAllowance;
    }

    /**
     * 设置基本工资结构中的加班补贴项
     *
     * @param basicOvertimeAllowance 基本工资结构中的加班补贴项
     */
    public void setBasicOvertimeAllowance(BigDecimal basicOvertimeAllowance) {
        this.basicOvertimeAllowance = basicOvertimeAllowance;
    }

    /**
     * 获取管理绩效
     *
     * @return management_achievements - 管理绩效
     */
    public BigDecimal getManagementAchievements() {
        return managementAchievements;
    }

    /**
     * 设置管理绩效
     *
     * @param managementAchievements 管理绩效
     */
    public void setManagementAchievements(BigDecimal managementAchievements) {
        this.managementAchievements = managementAchievements;
    }

    /**
     * 获取生产绩效
     *
     * @return produce_achievements - 生产绩效
     */
    public BigDecimal getProduceAchievements() {
        return produceAchievements;
    }

    /**
     * 设置生产绩效
     *
     * @param produceAchievements 生产绩效
     */
    public void setProduceAchievements(BigDecimal produceAchievements) {
        this.produceAchievements = produceAchievements;
    }

    /**
     * 获取全勤奖
     *
     * @return full_attendance_bonus - 全勤奖
     */
    public BigDecimal getFullAttendanceBonus() {
        return fullAttendanceBonus;
    }

    /**
     * 设置全勤奖
     *
     * @param fullAttendanceBonus 全勤奖
     */
    public void setFullAttendanceBonus(BigDecimal fullAttendanceBonus) {
        this.fullAttendanceBonus = fullAttendanceBonus;
    }

    /**
     * 获取工龄奖
     *
     * @return length_service_bonus - 工龄奖
     */
    public BigDecimal getLengthServiceBonus() {
        return lengthServiceBonus;
    }

    /**
     * 设置工龄奖
     *
     * @param lengthServiceBonus 工龄奖
     */
    public void setLengthServiceBonus(BigDecimal lengthServiceBonus) {
        this.lengthServiceBonus = lengthServiceBonus;
    }

    /**
     * 获取保密费
     *
     * @return confidentiality_fee - 保密费
     */
    public BigDecimal getConfidentialityFee() {
        return confidentialityFee;
    }

    /**
     * 设置保密费
     *
     * @param confidentialityFee 保密费
     */
    public void setConfidentialityFee(BigDecimal confidentialityFee) {
        this.confidentialityFee = confidentialityFee;
    }

    /**
     * 获取工作日加班费
     *
     * @return working_day_add_fee - 工作日加班费
     */
    public BigDecimal getWorkingDayAddFee() {
        return workingDayAddFee;
    }

    /**
     * 设置工作日加班费
     *
     * @param workingDayAddFee 工作日加班费
     */
    public void setWorkingDayAddFee(BigDecimal workingDayAddFee) {
        this.workingDayAddFee = workingDayAddFee;
    }

    /**
     * 获取周末加班费
     *
     * @return weekend_add_fee - 周末加班费
     */
    public BigDecimal getWeekendAddFee() {
        return weekendAddFee;
    }

    /**
     * 设置周末加班费
     *
     * @param weekendAddFee 周末加班费
     */
    public void setWeekendAddFee(BigDecimal weekendAddFee) {
        this.weekendAddFee = weekendAddFee;
    }

    /**
     * 获取节假日加班费
     *
     * @return holiday_add_fee - 节假日加班费
     */
    public BigDecimal getHolidayAddFee() {
        return holidayAddFee;
    }

    /**
     * 设置节假日加班费
     *
     * @param holidayAddFee 节假日加班费
     */
    public void setHolidayAddFee(BigDecimal holidayAddFee) {
        this.holidayAddFee = holidayAddFee;
    }

    /**
     * 获取高温补贴
     *
     * @return allowance_hot - 高温补贴
     */
    public BigDecimal getAllowanceHot() {
        return allowanceHot;
    }

    /**
     * 设置高温补贴
     *
     * @param allowanceHot 高温补贴
     */
    public void setAllowanceHot(BigDecimal allowanceHot) {
        this.allowanceHot = allowanceHot;
    }

    /**
     * 获取夜班补贴
     *
     * @return allowance_night_shift - 夜班补贴
     */
    public BigDecimal getAllowanceNightShift() {
        return allowanceNightShift;
    }

    /**
     * 设置夜班补贴
     *
     * @param allowanceNightShift 夜班补贴
     */
    public void setAllowanceNightShift(BigDecimal allowanceNightShift) {
        this.allowanceNightShift = allowanceNightShift;
    }

    /**
     * 获取其它补贴
     *
     * @return allowance_others - 其它补贴
     */
    public BigDecimal getAllowanceOthers() {
        return allowanceOthers;
    }

    /**
     * 设置其它补贴
     *
     * @param allowanceOthers 其它补贴
     */
    public void setAllowanceOthers(BigDecimal allowanceOthers) {
        this.allowanceOthers = allowanceOthers;
    }

    /**
     * 获取其它补贴备注
     *
     * @return allowance_others_note - 其它补贴备注
     */
    public String getAllowanceOthersNote() {
        return allowanceOthersNote;
    }

    /**
     * 设置其它补贴备注
     *
     * @param allowanceOthersNote 其它补贴备注
     */
    public void setAllowanceOthersNote(String allowanceOthersNote) {
        this.allowanceOthersNote = allowanceOthersNote;
    }

    /**
     * 获取其它奖励
     *
     * @return reward_others - 其它奖励
     */
    public BigDecimal getRewardOthers() {
        return rewardOthers;
    }

    /**
     * 设置其它奖励
     *
     * @param rewardOthers 其它奖励
     */
    public void setRewardOthers(BigDecimal rewardOthers) {
        this.rewardOthers = rewardOthers;
    }

    /**
     * 获取其它奖励备注
     *
     * @return reward_others_note - 其它奖励备注
     */
    public String getRewardOthersNote() {
        return rewardOthersNote;
    }

    /**
     * 设置其它奖励备注
     *
     * @param rewardOthersNote 其它奖励备注
     */
    public void setRewardOthersNote(String rewardOthersNote) {
        this.rewardOthersNote = rewardOthersNote;
    }

    /**
     * 获取考勤工时扣款
     *
     * @return attendance_hours_charge_back - 考勤工时扣款
     */
    public BigDecimal getAttendanceHoursChargeBack() {
        return attendanceHoursChargeBack;
    }

    /**
     * 设置考勤工时扣款
     *
     * @param attendanceHoursChargeBack 考勤工时扣款
     */
    public void setAttendanceHoursChargeBack(BigDecimal attendanceHoursChargeBack) {
        this.attendanceHoursChargeBack = attendanceHoursChargeBack;
    }

    /**
     * 获取工资总计
     *
     * @return total_salary - 工资总计
     */
    public BigDecimal getTotalSalary() {
        return totalSalary;
    }

    /**
     * 设置工资总计
     *
     * @param totalSalary 工资总计
     */
    public void setTotalSalary(BigDecimal totalSalary) {
        this.totalSalary = totalSalary;
    }

    /**
     * 获取行政扣款
     *
     * @return admin_charge_back - 行政扣款
     */
    public BigDecimal getAdminChargeBack() {
        return adminChargeBack;
    }

    /**
     * 设置行政扣款
     *
     * @param adminChargeBack 行政扣款
     */
    public void setAdminChargeBack(BigDecimal adminChargeBack) {
        this.adminChargeBack = adminChargeBack;
    }

    /**
     * 获取行政扣款备注
     *
     * @return admin_charge_back_note - 行政扣款备注
     */
    public String getAdminChargeBackNote() {
        return adminChargeBackNote;
    }

    /**
     * 设置行政扣款备注
     *
     * @param adminChargeBackNote 行政扣款备注
     */
    public void setAdminChargeBackNote(String adminChargeBackNote) {
        this.adminChargeBackNote = adminChargeBackNote;
    }

    /**
     * 获取应发工资
     *
     * @return should_pay_salary - 应发工资
     */
    public BigDecimal getShouldPaySalary() {
        return shouldPaySalary;
    }

    /**
     * 设置应发工资
     *
     * @param shouldPaySalary 应发工资
     */
    public void setShouldPaySalary(BigDecimal shouldPaySalary) {
        this.shouldPaySalary = shouldPaySalary;
    }

    /**
     * 获取社保代扣
     *
     * @return with_hold_insurance - 社保代扣
     */
    public BigDecimal getWithHoldInsurance() {
        return withHoldInsurance;
    }

    /**
     * 设置社保代扣
     *
     * @param withHoldInsurance 社保代扣
     */
    public void setWithHoldInsurance(BigDecimal withHoldInsurance) {
        this.withHoldInsurance = withHoldInsurance;
    }

    /**
     * 获取公积金代扣
     *
     * @return with_hold_fund - 公积金代扣
     */
    public BigDecimal getWithHoldFund() {
        return withHoldFund;
    }

    /**
     * 设置公积金代扣
     *
     * @param withHoldFund 公积金代扣
     */
    public void setWithHoldFund(BigDecimal withHoldFund) {
        this.withHoldFund = withHoldFund;
    }

    /**
     * 获取个税代扣
     *
     * @return with_hold_income_tax - 个税代扣
     */
    public BigDecimal getWithHoldIncomeTax() {
        return withHoldIncomeTax;
    }

    /**
     * 设置个税代扣
     *
     * @param withHoldIncomeTax 个税代扣
     */
    public void setWithHoldIncomeTax(BigDecimal withHoldIncomeTax) {
        this.withHoldIncomeTax = withHoldIncomeTax;
    }

    /**
     * 获取水电代扣
     *
     * @return with_hold_life - 水电代扣
     */
    public BigDecimal getWithHoldLife() {
        return withHoldLife;
    }

    /**
     * 设置水电代扣
     *
     * @param withHoldLife 水电代扣
     */
    public void setWithHoldLife(BigDecimal withHoldLife) {
        this.withHoldLife = withHoldLife;
    }

    /**
     * 获取住宿费代扣
     *
     * @return with_hold_homestay - 住宿费代扣
     */
    public BigDecimal getWithHoldHomestay() {
        return withHoldHomestay;
    }

    /**
     * 设置住宿费代扣
     *
     * @param withHoldHomestay 住宿费代扣
     */
    public void setWithHoldHomestay(BigDecimal withHoldHomestay) {
        this.withHoldHomestay = withHoldHomestay;
    }

    /**
     * 获取其它代扣
     *
     * @return with_hold_others - 其它代扣
     */
    public BigDecimal getWithHoldOthers() {
        return withHoldOthers;
    }

    /**
     * 设置其它代扣
     *
     * @param withHoldOthers 其它代扣
     */
    public void setWithHoldOthers(BigDecimal withHoldOthers) {
        this.withHoldOthers = withHoldOthers;
    }

    /**
     * 获取其它代扣备注
     *
     * @return with_hold_others_note - 其它代扣备注
     */
    public String getWithHoldOthersNote() {
        return withHoldOthersNote;
    }

    /**
     * 设置其它代扣备注
     *
     * @param withHoldOthersNote 其它代扣备注
     */
    public void setWithHoldOthersNote(String withHoldOthersNote) {
        this.withHoldOthersNote = withHoldOthersNote;
    }

    /**
     * 获取实发工资
     *
     * @return actual_pay_salary - 实发工资
     */
    public BigDecimal getActualPaySalary() {
        return actualPaySalary;
    }

    /**
     * 设置实发工资
     *
     * @param actualPaySalary 实发工资
     */
    public void setActualPaySalary(BigDecimal actualPaySalary) {
        this.actualPaySalary = actualPaySalary;
    }

    /**
     * 获取月份标志，例如：2022-05
     *
     * @return file_month - 月份标志，例如：2022-05
     */
    public String getFileMonth() {
        return fileMonth;
    }

    /**
     * 设置月份标志，例如：2022-05
     *
     * @param fileMonth 月份标志，例如：2022-05
     */
    public void setFileMonth(String fileMonth) {
        this.fileMonth = fileMonth;
    }

    /**
     * 获取关联的考勤报表ID
     *
     * @return attend_report_id - 关联的考勤报表ID
     */
    public String getAttendReportId() {
        return attendReportId;
    }

    /**
     * 设置关联的考勤报表ID
     *
     * @param attendReportId 关联的考勤报表ID
     */
    public void setAttendReportId(String attendReportId) {
        this.attendReportId = attendReportId;
    }
}